// @Author EthanScriptOn
// @Desc
package bridge

import (
	"gitee.com/fatzeng/srf_switch_stream_bridge/param_build"
	"gitee.com/fatzeng/srf_switch_stream_bridge/param_collector"
	"gitee.com/fatzeng/srf_switch_stream_bridge/result_collector"
	"gitee.com/fatzeng/srf_switch_stream_bridge/result_parser"
	"reflect"
)

type DataSource string

type Group struct {
	Env       string
	NameSpace string
	Group     string
}

type GroupConfig struct {
	*Group
	BridgeConfigs []*BridgeConfig
}

type BridgeConfig struct {
	BridgeIdentifier                   interface{}
	DataSource                         DataSource
	OperatorConfigIdentifier           interface{}
	MultiChannelDataOperatorIdentifier interface{}
	ParamsCollectors                   param_collector.ParamsCollectors
	ParamType                          reflect.Type
	ParamsBuilder                      param_build.ParamsBuilder
	ResultType                         reflect.Type
	ResultParser                       result_parser.ResultParser
	ResultCollector                    result_collector.ParseResultCollector
}

func (b *BridgeConfig) GenerateUniqueIdentifier() (interface{}, error) {
	return b.BridgeIdentifier, nil
}
